package com.smh.a02streamDemo1;

import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.stream.Stream;

public class StreamDemo2 {
    public static void main(String[] args) {
        //先得到一条Stream流(流水线)，并把数据放上去
        //使用中间方法对流水线上的数据进行操作
        //使用终结方法对流水线上的数据进行操作

        //单列集合
        HashSet<Integer> hs = new HashSet<>();
        for (int i = 0; i < 10; i++) {
            hs.add(i+1);
        }
        System.out.println(hs);
        hs.stream().filter(i->i>3).filter(i->i<9).forEach(i-> System.out.println(i));

        //双列集合
        HashMap<Integer,Character> hm = new HashMap<>();
        for (int i = 0; i < 26; i++) {
            hm.put(i+1,(char)('a'+i));
        }
        System.out.println(hm);
        hm.keySet().stream().filter(i->i>10).filter(i->i<26).forEach(i->{
            System.out.println(i+"="+hm.get(i));
        });

        //数组
        int[] arr = new int[10];
        for (int i = 0; i < 10; i++) {
            arr[i]=i;
        }
        Arrays.stream(arr).filter(i->i>4).filter(i->i<9).forEach(i-> System.out.print(i+" "));
        System.out.println();
        //零散数据
        Stream.of(1,2,3,4,5,6,7,8,9,10).filter(i->i>2).filter(i->i<8).forEach(i-> System.out.print(i+" "));
        //
        //小细节,stream接口的方法,只能接受引用数据类型的数组
        //基本数据类型的数组,他不会自动装箱,而是把数组存了进去,存的是数组的地址
        Stream.of(arr).forEach(s-> System.out.println(s));


    }
}
